Routing কনফিগারেশন

Web Development - এএসপি ডট (ASP.Net) - ASP.Net এর আর্কিটেকচার |

Routing হল ASP.Net অ্যাপ্লিকেশনের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা URL এবং অ্যাপ্লিকেশনের কোডের মধ্যে যোগাযোগ স্থাপন করে। এটি HTTP অনুরোধের URL কে সংশ্লিষ্ট কন্ট্রোলার এবং অ্যাকশন মেথডের সাথে মানানসই করে। Routing ব্যবহার করে, আপনি URL গুলি কনফিগার করতে পারেন যাতে তারা কোডের নির্দিষ্ট অংশের সাথে মেলানো যায়, যেমন মডেল, কন্ট্রোলার এবং ভিউ।


Routing কী?

Routing হলো URL এর সাথে নির্দিষ্ট কন্ট্রোলার অ্যাকশন যুক্ত করার একটি প্রক্রিয়া। এটি অ্যাপ্লিকেশন চলাকালীন HTTP অনুরোধের ভিত্তিতে একটি নির্দিষ্ট URL-এ পৌঁছানোর পথ নির্ধারণ করে। ASP.Net এ Routing এর সাহায্যে আপনি আরও মানবিক এবং SEO-বান্ধব URL গঠন করতে পারেন।


ASP.Net Routing কনফিগারেশন

ASP.Net এ Routing কনফিগারেশন সাধারণত Startup.cs (ASP.Net Core) বা Global.asax (ASP.Net Framework) ফাইলে করা হয়।


ASP.Net Core এ Routing কনফিগারেশন

ASP.Net Core এ Routing কনফিগারেশন Startup.cs ফাইলে করা হয়, যা অ্যাপ্লিকেশন শুরু হওয়ার সময় কনফিগারেশন এবং মিডলওয়্যার সেটআপ পরিচালনা করে।

১. ConfigureServices মেথডে Routing কনফিগারেশন

ASP.Net Core এ Routing ব্যবহারের জন্য আপনাকে ConfigureServices মেথডে AddRouting() কল করতে হবে। তবে সাধারণত এটি ডিফল্টভাবে অন্তর্ভুক্ত থাকে, তাই অতিরিক্ত কোনো কনফিগারেশন প্রয়োজন হয় না।

public void ConfigureServices(IServiceCollection services)
{
    services.AddRouting();
    services.AddControllersWithViews();
}

২. Configure মেথডে Routing কনফিগারেশন

Configure মেথডে, আপনাকে MapControllerRoute এর মাধ্যমে রাউটিং কনফিগারেশন করতে হবে।

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();

    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        // Default route configuration
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
}

MapControllerRoute এর মাধ্যমে রাউটিং কনফিগার করা হয়, যেখানে:

  • name: রুটের নাম।
  • pattern: URL প্যাটার্ন। এটি হলো URL এর কাঠামো যা নির্দিষ্ট কন্ট্রোলার এবং অ্যাকশন থেকে মিলিয়ে নেয়।
    • {controller=Home}: এটি HomeController কে ডিফল্ট কন্ট্রোলার হিসেবে সিলেক্ট করে।
    • {action=Index}: এটি Index অ্যাকশনকে ডিফল্ট অ্যাকশন হিসেবে সিলেক্ট করে।
    • {id?}: এটি ঐচ্ছিক প্যারামিটার।

ASP.Net Framework এ Routing কনফিগারেশন (Web Forms / MVC)

ASP.Net Framework এ Routing কনফিগারেশন Global.asax ফাইলে করা হয়।

১. Global.asax ফাইলে Routing কনফিগারেশন

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        // Enable routing
        RouteConfig.RegisterRoutes(RouteTable.Routes);
    }
}

২. RouteConfig.cs ফাইলে Routing কনফিগারেশন

RouteConfig.cs ফাইলে সমস্ত রাউট কনফিগারেশন থাকে।

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        // Default route
        routes.MapRoute(
            name: "default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

এখানে:

  • routes.MapRoute(): URL প্যাটার্ন অনুযায়ী রাউট কনফিগার করে।
  • defaults: ডিফল্ট কন্ট্রোলার, অ্যাকশন এবং প্যারামিটার সেট করে। উদাহরণস্বরূপ, HomeController এবং Index অ্যাকশন ডিফল্ট হিসেবে সেট করা হয়েছে।
  • id: এটি ঐচ্ছিক প্যারামিটার। অর্থাৎ, URL তে id প্যারামিটার থাকলেও নাও থাকতে পারে।

কাস্টম Routing কনফিগারেশন

ASP.Net এ কাস্টম URL প্যাটার্ন ব্যবহার করে আপনিও রাউট কনফিগার করতে পারেন।

উদাহরণ: কাস্টম রাউট প্যাটার্ন

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        // Custom route pattern
        endpoints.MapControllerRoute(
            name: "product",
            pattern: "product/{category}/{id?}",
            defaults: new { controller = "Product", action = "Details" });
    });
}

এখানে, আপনি product/{category}/{id?} URL প্যাটার্নটি কনফিগার করেছেন, যা ProductController এর Details অ্যাকশনে পাঠানো হবে। এখানে category প্যারামিটারটি বাধ্যতামূলক, তবে id ঐচ্ছিক।


Routing এর জন্য আরও কৌশল

  1. Attribute Routing: ASP.Net Core তে, আপনি কন্ট্রোলার বা অ্যাকশনে [Route] অ্যাট্রিবিউট ব্যবহার করতে পারেন। উদাহরণ:

    [Route("product/{id}")]
    public IActionResult Details(int id)
    {
        // Your code to fetch product details
    }
    
  2. Multiple Routes: আপনি একাধিক রাউট কনফিগারেশন ব্যবহার করতে পারেন একই অ্যাকশনের জন্য।

    [Route("product/{id}")]
    [Route("item/{id}")]
    public IActionResult Details(int id)
    {
        // Your code to fetch product details
    }
    
  3. Constraints: রাউটিং প্যাটার্নে কন্ডিশন বা কনস্ট্রেইন্ট ব্যবহার করতে পারেন। যেমন:

    routes.MapRoute(
        name: "productDetails",
        url: "product/{id:int}",
        defaults: new { controller = "Product", action = "Details" }
    );
    

    এখানে {id:int} রাউট কনস্ট্রেইন্ট দ্বারা নিশ্চিত করে যে id শুধুমাত্র একটি পূর্ণসংখ্যা হবে।


সারাংশ

Routing ASP.Net অ্যাপ্লিকেশনের একটি গুরুত্বপূর্ণ অংশ যা URL এবং কোডের মধ্যে একটি সম্পর্ক তৈরি করে। ASP.Net Core এবং ASP.Net Framework উভয়েই Routing কনফিগারেশনের জন্য ভিন্ন পদ্ধতি ব্যবহার করে। ASP.Net Core এ Startup.cs ফাইলে এবং ASP.Net Framework এ Global.asax ফাইলে Routing কনফিগার করা হয়। আপনি কাস্টম URL প্যাটার্ন, Attribute Routing, এবং Constraints ব্যবহার করে আরও বেশি নমনীয় রাউটিং তৈরি করতে পারেন।

Content added By
Promotion